package com.happy.sky.arithmetic;

import java.util.ArrayList;
import java.util.List;

/**
 * @name: OtheRoptimize <tb>
 * @title: 请输入类描述  <tb>
 * @author: cuixinfu@51play.com <tb>
 * @date: 2021/8/19 8:53 <tb>
 */
public class OtheRoptimize {
    public static void main(String[] args) {
        int a = 32 ;
        int num1 = a >> 2; //int num1 = a / 4;
        int num2 = a >> 3; //int num2 = a / 8;
        //System.out.println(num1);
        //System.out.println(num2);

        List<String> list = new ArrayList<>();
        list.add("hello word!");
        for(int i=0,len=list.size();i<len;i++){
            System.out.println(list.get(i));
        }
        //位移：
        int intValue = 733183670;//随意写一个数
        System.out.println("intValue：" + (intValue));//打印intValue
        System.out.println("intValue左移1位：" + (intValue << 1));//左移1位
        System.out.println("intValue左移8位：" + (intValue << 8));//左移8位
        //当int类型左移位数大于等于32位操作时，会先求余后再进行移位操作
        System.out.println("intValue左移32位：" + (intValue << 32));//求余为32%32=0，相当于左移0位（不移位）
        System.out.println("intValue左移40位：" + (intValue << 40));//求余为40%32=8，相当于左移8位
        System.out.println("intValue左移64位：" + (intValue << 64));//求余为64%32=0，相当于左移0位（不移位）

        long longValue = 733183670L;
        System.out.println("longValue：" + (longValue));//打印longValue
        System.out.println("longValue左移1位：" + (longValue << 1));//左移1位
        System.out.println("longValue左移8位：" + (longValue << 8));//左移8位
        //当long类型左移位数大于等于64位操作时，会先求余后再进行移位操作
        System.out.println("longValue左移64位：" + (longValue << 64));//求余为64%64=0，相当于左移0位（不移位）
        System.out.println("longValue左移72位：" + (longValue << 72));//求余为72%64=8，相当于左移8位
        System.out.println("longValue左移128位：" + (longValue << 128));//求余为128%64=0，相当于左移0位（不移位）


        System.out.println("=========================================");
        int x = 5,y = 12; // 创建整型变量保存两个数
        int z = x&y; // 对这两个数进行位与运算，结果保存到z
        System.out.println(z);
    }

}
